package br.com.ucb.projFinal.beans;
public interface ISupermercado {
	/**
	 * @FUNCION: IncorporarProducto
	 * 
	 * @RESPONSABILIDAD: Agrega un producto a la lista de productos. 
	 * @param producto - Elemento a agregar a la lista
	 * @return
	 * VERDADERO : Si se puede agregar
	 * FALSO: Si no se pudo agregar
	 * @author LA REVANCHA
	 */
	public boolean IncorporarProducto(IProducto producto);
	
	/**
	 * @FUNCION: QuitarProducto
	 * 
	 * @RESPONSABILIDAD: Quita un producto de la lista de productos. 
	 * 
	 * @param codigoBarras - clave del elemento a borrar
	 * 
	 * @return 
	 * VERDADERO : Si se puede quitar
	 * FALSO: Si no se pudo quitar
	 * 
	 * @author LA REVANCHA
	 */
	public boolean QuitarProducto(Integer codigoBarras);
	
	/**
	 * @FUNCION: AgregarStock
	 * 
	 * @RESPONSABILIDAD: Incrementa el contador de Stock de un producto dado por su clave.
	 * 
	 * @param codigoBarras -  clave del elemento
	 * 
	 * @param cantidad - cantidad a incrementar
	 * 
	 * @return
	 * 	VERDADERO : Si se puede agregar
	 * 	FALSO: Si no se pudo agregar
	 * 
	 * @author LA REVANCHA
	 */
	public boolean AgregarStock(Integer codigoBarras, Integer cantidad);
	
	/**
	 * @FUNCION: QuitarStock
	 * 
	 * @RESPONSABILIDAD: Decrementa el contador de Stock de un producto dado por su clave.
	 * 
	 * @param codigoBarras - clave del elemento
	 * 
	 * @param cantidad - cantidad a decrementar
	 * 
	 * @return
	 * 	VERDADERO : Si se puede quitar
	 * 	FALSO: Si no se pudo quitar
	 * 
	 * @author LA REVANCHA
	 */
	public boolean QuitarStock(Integer codigoBarras, Integer cantidad);
	
	/**
	 * @FUNCION: ListarProductos
	 * 
	 * @RESPONSABILIDAD: Lista los productos por su nombre, informando el stock.
	 *  
	 * @return 
	 * 	String con la lista de productos por su nombre y precio. 
	 *  
	 * @author LA REVANCHA 
	 */
	public String ListarProductos();
	

}
